<?php

	/**
	 * 定时计算需求相关
	 * 计算库存相关
	 * 计算销量相关
	 * @auther QiuXiangCheng
	 * @date 2016/08/24
	 */
	class Backup_CronJobSpecialStockController extends Controller_Base{

		/**
		 * /backup/cron-job-special-stock/compute-stock
		 * 批量计算出前一天变动的库存的可用库存
		 * @return interger 受计算的库存数
		 */
		public function computeStockAction(){

			set_time_limit(0);
			die(Application_Model_RunByAutomatic::computeStock() . Helper_Lang::$conf['UpdateMsg1']);
		}

		/**
		 * /backup/cron-job-special-stock/update-special-purchase
		 * 批量作废特采申请表和特采需求中的状态
		 * @return interger（理论上）更新的数量
		 */
		public function updateSpecialPurchaseAction(){

			set_time_limit(0);
			die(Application_Model_RunByAutomatic::updateSpecialPurchase() . Helper_Lang::$conf['UpdateMsg2']);
		}

	/***销量表相关***/
		/**
		 * 操作p_product_sales_log表
		 * /backup/cron-job-special-stock/insert-sales-data-from-dw
		 * 从决策系统的中转站取得销量数据 并将其作为日志存入p_product_sales_log表
	 	 * 本方法会先删除旧的本地数据 并将ID自增重置为1
	 	 * 删除本地旧数据 并将ID自增重置为1  CALL SET_SOLDS_DATA_INIT();
		 * 使用COMPUTE_PRODUCT_SOLDS计算三天、七天、十五天、三十天销量
		 * @return interger . string
		 */
		public function insertSalesDataFromDwAction(){

			set_time_limit(0);
			die(Application_Model_RunByAutomatic::insertFromDw() . Helper_Lang::$conf['UpdateMsg3']);
		}

		/**
		 * vacation
		 * /backup/cron-job-special-stock/del-sales-data
		 * 在计算销量统计之前应该先删除正式的销量数据 并使ID自增
		 * @return string
		 */
		public function delSalesDataAction(){

			set_time_limit(0);
			die(Application_Model_RunByAutomatic::delSalesData() . Helper_Lang::$conf['AfterDel']);
		}

		/**
		 * /backup/cron-job-special-stock/insert-and-compute-sales?dtype=7
		 * 计算七天、十五天、三十天销量
		 * @return string
		 */
		public function insertAndComputeSalesAction(){

			set_time_limit(0);
			$day = $this -> getRequest() -> getParam('dtype');
			if(is_null($day) && $day != 7 && $day != 15 && $day != 30){
				throw new Exception(Helper_Lang::$conf['LostErr'], 1);
			}
			die(Application_Model_RunByAutomatic::insertAndComputeSales((int)$day) . Helper_Lang::$conf['UpdateMsg4']);
		}

		/**
		 * 生成生命周期 结果更新至库存表
		 * @return string
		 */
		public function fetchLifeCycleAction(){

			set_time_limit(0);
			die(Application_Model_RunByAutomatic::fetchLifeCycle());
		}
	}